home *** CD-ROM | disk | FTP | other *** search
- @echo off
- title pcw1-1.V06 (Mirror-Batch)
- set zquelle=%1
- set zkopie=%2
- set zmodus=%3
- FOR %%A in (0 1 2 9) DO IF (%%A)==(%zmodus%) set zbatch=1
- if (%zbatch%)==() set zmodus=
- set ztmp=
- set ZAN=
- set zf=0
-
- doskey a= > NUL
- doskey n= > NUL
- doskey 0= > NUL
- doskey 1= > NUL
- doskey 2= > NUL
- color F1
- cls
- mode con cols=120
- echo.
- echo ╔═══════════════════════════════════════╗
- echo ║Porovnani souboru pomoci pcw1-1.v06.BAT║
- echo ╚═══════════════════════════════════════╝
- echo.
-
- REM Input Source Folder --------------------------------------------------
- :Zdroj
- if (%zquelle%)==() SET /P zquelle= Zdrojova slozka:
- set zquelle=%zquelle:"=%
- if %errorlevel% EQU 9009 (
- Echo.
- Echo Pricina chyby:
- Echo Slozka na nejvyssi urovni nesmi obsahovat znak "&".
- Echo.
- goto OVER
- )
- if %zquelle:~-1%==\ set zquelle=%zquelle:~0,-1%
- if NOT exist "%zquelle%" (
- echo.
- echo CHYBA: Tato zdrojova slozka neexistuje...
- set zquelle=
- set zbatch=
- GOTO Quelle
- )
-
- REM Input Copy Folder ----------------------------------------------------
- if (%zkopie%)==() SET /P zkopie= Cilova slozka:
- set zkopie=%zkopie:"=%
- if %errorlevel% EQU 9009 (
- Echo.
- Echo Pricina chyby:
- Echo Slozka na nejvyssi urovni nesmi obsahovat znak "&".
- Echo.
- goto OVER
- )
- if %zkopie:~-1%==\ set zkopie=%zkopie:~0,-1%
- if exist "%zkopie%" goto Modus
- echo. && echo POZOR: "%zkopie%" neni k dispozici. && Echo.
- set zbatch=
- set /P zan= Vytvorit novou? [a-n]:
- if /i NOT (%zan%)==(a) Goto OVER
- md "%zkopie%"
- set zmodus=1
- if not exist "%zkopie%" goto OVER
-
- REM Input Mode -----------------------------------------------------------
- :Modus
- if NOT (%zmodus%)==() goto ModeDone
- echo.
- echo [0] Odstranit: Odstrani v cilove slozce VSECHNY prebytecne slozky a soubory.
- echo [1] Kopirovat: Doplni vsechny soubory, ktere v cilove slozce chybi nebo nahradi starsi verze souboru novejsimi.
- echo [2] Odstranit + Kopirovat: Provede vsechny akce uvedene v bodech [0 a 1].
- echo [9] Odstranit + Kopirovat: Simulace pro ucely testovani.
- echo.
- SET /P zmodus= Vyberte si nekterou z polozek [0, 1, 2 nebo 9]:
-
- :ModeDone
- If NOT (%zmodus%)==(0) If NOT (%zmodus%)==(1) If NOT (%zmodus%)==(2) If NOT (%zmodus%)==(9) (
- set zmodus=
- echo CHYBA: %zmodus% neni platny. Vyberte [0, 1, 2 nebo 9].
- goto Modus
- )
-
- echo.
- echo ZDROJ: %zquelle%
- echo CIL: %zkopie%
-
- if %zmodus% EQU 0 echo Rezim0: Pouze odstraneni ze slozky %zkopie%
- if %zmodus% EQU 1 echo Rezim1: Pouze kopirovani do %zkopie%
- if %zmodus% EQU 2 echo Rezim2: Kopirovani + odstranovani ze slozky %zkopie%
- if %zmodus% EQU 9 echo Rezim9: Simulace kopirovani + odstranovani ze slozky %zkopie%
- echo.
-
- set zan=
- if NOT (%zbatch%)==(1) SET /P zan= Jsou zadane parametry v poradku? [a-n]:
- if NOT (%zbatch%)==(1) if /i NOT %zan%.==a. Goto OVER
-
- REM Copy Machine ---------------------------------------------------------
- echo. && echo COPY ------------------------------------------------------------- && echo.
- if %zmodus% EQU 1 xcopy.exe /f /r /i /s /c /h /d /y "%zquelle%\*.*" "%zkopie%"
- if %zmodus% EQU 2 xcopy.exe /f /r /i /s /c /h /d /y "%zquelle%\*.*" "%zkopie%"
- if %zmodus% EQU 9 xcopy.exe /f /r /i /s /c /h /d /y /l "%zquelle%\*.*" "%zkopie%"
- if %zmodus% EQU 1 goto OVER
-
- REM Kill Machine ---------------------------------------------------------
- color 0A
- echo.
- echo. && echo KILL ------------------------------------------------------------- && echo.
- echo. && echo Vyhledavam prebytecne slozky... && echo.
- dir /S /B /AD "%zkopie%\*.*" > %temp%\pcw1-1.tmp
- for /f "Delims=" %%N in (%temp%\pcw1-1.tmp) DO call :DirKill "%%N"
-
- echo. && echo Vyhledavam prebytecne soubory... && echo.
- dir /S /B /A-D "%zkopie%\*.*" > %temp%\pcw1-1.tmp
- for /f "Delims=" %%N in (%temp%\pcw1-1.tmp) DO call :FileKill "%%N"
-
- color F1
- echo.
- echo ╔═══════════════════════════════════════╗
- echo ║Porovnani souboru pomoci pcw1-1.v06.BAT║
- echo ╚═══════════════════════════════════════╝
- echo.
- echo Zdrojova slozka: %zquelle%
- echo Cilova slozka: %zkopie%
- if %zmodus% NEQ 9 echo %zd% slozek
- if %zmodus% NEQ 9 echo %zf% souboru
- if %zmodus% EQU 9 echo Simulace - nekopiruji se ani neodstranuji zadne soubory.
- echo.
- goto OVER
-
- :DirKill
- set ztmp=%*
- call set quelle=%%ztmp:%zkopie%=%zquelle%%%
- if not exist %quelle% (
- if exist %ztmp% (
- if %zmodus% NEQ 9 RD /s /q %ztmp%
- echo ╔══ %ztmp%
- echo ╚═════ KILLED...
- ping -n 1 localhost > NUL
- )
- ) ELSE (
- echo OK %ztmp%
- set /a zd=zd+1
- )
- goto Dummy
-
- :FileKill
- set ztmp=%*
- call set quelle=%%ztmp:%zkopie%=%zquelle%%%
- if not exist %quelle% (
- if %zmodus% NEQ 9 DEL /F /A %ztmp%
- echo ╔══ %ztmp%
- echo ╚═════ KILLED...
- ping -n 1 localhost > NUL
- ) ELSE (
- echo OK %ztmp%
- set /a zf=zf+1
- )
- goto Dummy
-
- REM Clean Up -------------------------------------------------------------
- :OVER
- if exist %temp%\pcw1-1.tmp del /F /A %temp%\pcw1-1.tmp
- set zmodus=
- set ZAN=
- set zquelle=
- set zkopie=
- set zbatch=
- set ztmp=
- set zf=
- set zd=
- set quelle=
- pause
-
- :DUMMY
-